#!/usr/bin/env python
# This Python file uses the following encoding: utf-8
#
#
# Copyright 2014, NICTA
#
# This software may be distributed and modified according to the terms of
# the BSD 2-Clause license. Note that NO WARRANTY is provided.
# See "LICENSE_BSD2.txt" for details.
#
# @TAG(NICTA_BSD)
#
#  
#  xsymbol.py
#
#  Author: Andrew Boyton, NICTA
#  Based on code by Timothy Bourke, NICTA
#

import sys
import codecs

# dictionary of x-symbols and their Unicode equivalent
word_dic = {
'\<supseteq>': '⊇',
'\<KK>': '𝔎',
'\<up>': '↑',
'\<otimes>': '⊗',
'\<aa>': '𝔞',
'\<dagger>': '†',
'\<frown>': '⌢',
'\<guillemotleft>': '«',
'\<qq>': '𝔮',
'\<X>': '𝒳',
'\<triangleright>': '▹',
'\<guillemotright>': '»',
'\<nu>': 'ν',
'\<sim>': '∼',
'\<rightharpoondown>': '⇁',
'\<p>': '𝗉',
'\<Up>': '⇑',
'\<triangleq>': '≜',
'\<nine>': '𝟵',
'\<preceq>': '≼',
'\<nabla>': '∇',
'\<FF>': '𝔉',
'\<Im>': 'ℑ',
'\<VV>': '𝔙',
'\<spacespace>': '␣',
'\<and>': '∧',
'\<mapsto>': '↦',
'\<ll>': '𝔩',
'\<F>': 'ℱ',
'\<degree>': '°',
'\<beta>': 'β',
'\<Colon>': '∷',
'\<bool>': '𝔹',
'\<e>': '𝖾',
'\<lozenge>': '◊',
'\<u>': '𝗎',
'\<sharp>': '♯',
'\<Longleftrightarrow>': '⟺',
'\<Otimes>': '⨂',
'\<EE>': '𝔈',
'\<I>': 'ℐ',
'\<UU>': '𝔘',
'\<exclamdown>': '¡',
'\<dots>': '…',
'\<N>': '𝒩',
'\<kk>': '𝔨',
'\<plusminus>': '±',
'\<E>': 'ℰ',
'\<triangle>': '△',
'\<eta>': 'η',
'\<triangleleft>': '◃',
'\<chi>': 'χ',
'\<z>': '𝗓',
'\<hungarumlaut>': '˝',
'\<partial>': '∂',
'\<three>': '𝟯',
'\<lesssim>': '≲',
'\<subset>': '⊂',
'\<H>': 'ℋ',
'\<leftarrow>': '←',
'\<PP>': '𝔓',
'\<sqsupseteq>': '⊒',
'\<R>': 'ℛ',
'\<bowtie>': '⨝',
'\<C>': '𝒞',
'\<ddagger>': '‡',
'\<ff>': '𝔣',
'\<turnstile>': '⊢',
'\<bar>': '¦',
'\<propto>': '∝',
'\<S>': '𝒮',
'\<vv>': '𝔳',
'\<lhd>': '⊲',
'\<paragraph>': '¶',
'\<mu>': 'μ',
'\<rightharpoonup>': '⇀',
'\<Inter>': '⋂',
'\<o>': '𝗈',
'\<asymp>': '≍',
'\<Leftarrow>': '⇐',
'\<Sqinter>': '⨅',
'\<eight>': '𝟴',
'\<succeq>': '≽',
'\<forall>': '∀',
'\<complex>': 'ℂ',
'\<GG>': '𝔊',
'\<Coprod>': '∐',
'\<L>': 'ℒ',
'\<WW>': '𝔚',
'\<leadsto>': '↝',
'\<D>': '𝒟',
'\<angle>': '∠',
'\<section>': '§',
'\<TTurnstile>': '⊫',
'\<mm>': '𝔪',
'\<T>': '𝒯',
'\<alpha>': 'α',
'\<leftharpoondown>': '↽',
'\<rho>': 'ρ',
'\<wrong>': '≀',
'\<l>': '𝗅',
'\<doteq>': '≐',
'\<times>': '×',
'\<noteq>': '≠',
'\<rangle>': '⟩',
'\<div>': '÷',
'\<Longrightarrow>': '⟹',
'\<BB>': '𝔅',
'\<sqsupset>': '⊐',
'\<rightarrow>': '→',
'\<real>': 'ℝ',
'\<hh>': '𝔥',
'\<Phi>': 'Φ',
'\<integral>': '∫',
'\<CC>': 'ℭ',
'\<euro>': '€',
'\<xx>': '𝔵',
'\<Y>': '𝒴',
'\<zeta>': 'ζ',
'\<longleftarrow>': '⟵',
'\<a>': '𝖺',
'\<onequarter>': '¼',
'\<And>': '⋀',
'\<downharpoonright>': '⇂',
'\<phi>': 'φ',
'\<q>': '𝗊',
'\<Rightarrow>': '⇒',
'\<clubsuit>': '♣',
'\<ggreater>': '≫',
'\<two>': '𝟮',
'\<succ>': '≻',
'\<AA>': '𝔄',
'\<lparr>': '⦇',
'\<Squnion>': '⨆',
'\<HH>': 'ℌ',
'\<sqsubseteq>': '⊑',
'\<QQ>': '𝔔',
'\<setminus>': '∖',
'\<Lambda>': 'Λ',
'\<Re>': 'ℜ',
'\<J>': '𝒥',
'\<gg>': '𝔤',
'\<hyphen>': '­',
'\<B>': 'ℬ',
'\<Z>': '𝒵',
'\<ww>': '𝔴',
'\<lambda>': 'λ',
'\<onehalf>': '½',
'\<f>': '𝖿',
'\<Or>': '⋁',
'\<v>': '𝗏',
'\<natural>': '♮',
'\<seven>': '𝟳',
'\<Oplus>': '⨁',
'\<subseteq>': '⊆',
'\<rfloor>': '⌋',
'\<LL>': '𝔏',
'\<Sum>': '∑',
'\<ominus>': '⊖',
'\<bb>': '𝔟',
'\<Pi>': 'Π',
'\<cent>': '¢',
'\<diamond>': '◇',
'\<mho>': '℧',
'\<O>': '𝒪',
'\<rr>': '𝔯',
'\<twosuperior>': '²',
'\<leftharpoonup>': '↼',
'\<pi>': 'π',
'\<k>': '𝗄',
'\<star>': '⋆',
'\<rightleftharpoons>': '⇌',
'\<equiv>': '≡',
'\<langle>': '⟨',
'\<Longleftarrow>': '⟸',
'\<nexists>': '∄',
'\<Odot>': '⨀',
'\<lfloor>': '⌊',
'\<sqsubset>': '⊏',
'\<SS>': '𝔖',
'\<box>': '□',
'\<index>': 'ı',
'\<pounds>': '£',
'\<Upsilon>': 'Υ',
'\<ii>': '𝔦',
'\<hookleftarrow>': '↩',
'\<P>': '𝒫',
'\<threesuperior>': '³',
'\<epsilon>': 'ε',
'\<yy>': '𝔶',
'\<h>': '𝗁',
'\<upsilon>': 'υ',
'\<x>': '𝗑',
'\<not>': '¬',
'\<le>': '≤',
'\<one>': '𝟭',
'\<cdots>': '⋯',
'\<some>': 'ϵ',
'\<Prod>': '∏',
'\<NN>': '𝔑',
'\<squnion>': '⊔',
'\<dd>': '𝔡',
'\<top>': '⊤',
'\<dieresis>': '¨',
'\<tt>': '𝔱',
'\<U>': '𝒰',
'\<unlhd>': '⊴',
'\<cedilla>': '¸',
'\<kappa>': 'κ',
'\<amalg>': '⨿',
'\<restriction>': '↾',
'\<struct>': '⋄',
'\<m>': '𝗆',
'\<six>': '𝟲',
'\<midarrow>': '─',
'\<lbrace>': '⦃',
'\<lessapprox>': '⪅',
'\<MM>': '𝔐',
'\<down>': '↓',
'\<oplus>': '⊕',
'\<wp>': '℘',
'\<surd>': '√',
'\<cc>': '𝔠',
'\<bottom>': '⊥',
'\<copyright>': '©',
'\<ZZ>': 'ℨ',
'\<union>': '∪',
'\<V>': '𝒱',
'\<ss>': '𝔰',
'\<unrhd>': '⊵',
'\<onesuperior>': '¹',
'\<b>': '𝖻',
'\<downharpoonleft>': '⇃',
'\<cdot>': '⋅',
'\<r>': '𝗋',
'\<Midarrow>': '═',
'\<Down>': '⇓',
'\<diamondsuit>': '♢',
'\<rbrakk>': '⟧',
'\<lless>': '≪',
'\<longleftrightarrow>': '⟷',
'\<prec>': '≺',
'\<emptyset>': '∅',
'\<rparr>': '⦈',
'\<Delta>': 'Δ',
'\<XX>': '𝔛',
'\<parallel>': '∥',
'\<K>': '𝒦',
'\<nn>': '𝔫',
'\<registered>': '®',
'\<M>': 'ℳ',
'\<delta>': 'δ',
'\<threequarters>': '¾',
'\<g>': '𝗀',
'\<cong>': '≅',
'\<tau>': 'τ',
'\<w>': '𝗐',
'\<ge>': '≥',
'\<flat>': '♭',
'\<zero>': '𝟬',
'\<Uplus>': '⨄',
'\<longmapsto>': '⟼',
'\<supset>': '⊃',
'\<in>': '∈',
'\<sqinter>': '⊓',
'\<OO>': '𝔒',
'\<updown>': '↕',
'\<circ>': '∘',
'\<rat>': 'ℚ',
'\<stileturn>': '⊣',
'\<ee>': '𝔢',
'\<Omega>': 'Ω',
'\<or>': '∨',
'\<inverse>': '¯',
'\<rhd>': '⊳',
'\<uu>': '𝔲',
'\<iota>': 'ι',
'\<d>': '𝖽',
'\<questiondown>': '¿',
'\<Union>': '⋃',
'\<omega>': 'ω',
'\<approx>': '≈',
'\<t>': '𝗍',
'\<Updown>': '⇕',
'\<spadesuit>': '♠',
'\<five>': '𝟱',
'\<exists>': '∃',
'\<rceil>': '⌉',
'\<JJ>': '𝔍',
'\<minusplus>': '∓',
'\<nat>': 'ℕ',
'\<oslash>': '⊘',
'\<A>': '𝒜',
'\<Xi>': 'Ξ',
'\<currency>': '¤',
'\<Turnstile>': '⊨',
'\<hookrightarrow>': '↪',
'\<pp>': '𝔭',
'\<Q>': '𝒬',
'\<aleph>': 'ℵ',
'\<acute>': '´',
'\<xi>': 'ξ',
'\<simeq>': '≃',
'\<i>': '𝗂',
'\<Join>': '⋈',
'\<y>': '𝗒',
'\<lbrakk>': '⟦',
'\<greatersim>': '≳',
'\<greaterapprox>': '⪆',
'\<longrightarrow>': '⟶',
'\<lceil>': '⌈',
'\<Gamma>': 'Γ',
'\<odot>': '⊙',
'\<YY>': '𝔜',
'\<infinity>': '∞',
'\<Sigma>': 'Σ',
'\<yen>': '¥',
'\<int>': 'ℤ',
'\<tturnstile>': '⊩',
'\<oo>': '𝔬',
'\<ointegral>': '∮',
'\<gamma>': 'γ',
'\<upharpoonleft>': '↿',
'\<sigma>': 'σ',
'\<n>': '𝗇',
'\<rbrace>': '⦄',
'\<DD>': '𝔇',
'\<notin>': '∉',
'\<j>': '𝗃',
'\<uplus>': '⊎',
'\<leftrightarrow>': '↔',
'\<TT>': '𝔗',
'\<bullet>': '∙',
'\<Theta>': 'Θ',
'\<smile>': '⌣',
'\<G>': '𝒢',
'\<jj>': '𝔧',
'\<inter>': '∩',
'\<Psi>': 'Ψ',
'\<ordfeminine>': 'ª',
'\<W>': '𝒲',
'\<zz>': '𝔷',
'\<theta>': 'θ',
'\<ordmasculine>': 'º',
'\<c>': '𝖼',
'\<psi>': 'ψ',
'\<s>': '𝗌',
'\<Leftrightarrow>': '⇔',
'\<heartsuit>': '♡',
'\<four>': '𝟰'}


if len(sys.argv) > 1:
    f = open(sys.argv[1], 'r')
else:
    f = sys.stdin

data = f.read()
# replace the words in the dictionary
for key, value in word_dic.items():
    data = data.replace(key, value)
print data,
